home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.3 (Developer)…68k, x86, SPARC, PA-RISC] / NeXTSTEP 3.3 Dev Intel.iso / NextDeveloper / Source / GNU / libg++ / libiberty / memchr.c < prev    next >
C/C++ Source or Header  |  1994-02-15  |  1KB  |  61 lines

  1. /*
  2. FUNCTION
  3.     <<memchr>>---find character in memory
  4.  
  5. INDEX
  6.     memchr
  7.  
  8. ANSI_SYNOPSIS
  9.     #include <string.h>
  10.     void *memchr(const void *<[src]>, int <[c]>, size_t <[length]>);
  11.  
  12. TRAD_SYNOPSIS
  13.     #include <string.h>
  14.     void *memchr(<[src]>, <[c]>, <[length]>)
  15.     void *<[src]>;
  16.     void *<[c]>;
  17.     size_t <[length]>;
  18.  
  19. DESCRIPTION
  20.     This function searches memory starting at <<*<[src]>>> for the
  21.     character <[c]>.  The search only ends with the first
  22.     occurrence of <[c]>, or after <[length]> characters; in
  23.     particular, <<NULL>> does not terminate the search.
  24.  
  25. RETURNS
  26.     If the character <[c]> is found within <[length]> characters
  27.     of <<*<[src]>>>, a pointer to the character is returned. If
  28.     <[c]> is not found, then <<NULL>> is returned.     
  29.  
  30. PORTABILITY
  31. <<memchr>>  requires no supporting OS subroutines.
  32.  
  33. QUICKREF
  34.     memchr ansi pure
  35.  
  36. */
  37.  
  38. #include <ansidecl.h>
  39. #ifdef __STDC__
  40. #include <stddef.h>
  41. #else
  42. #define size_t unsigned long
  43. #endif
  44.  
  45. PTR
  46. memchr (src_void, c, length)
  47.      register CONST PTR src_void;
  48.      int c;
  49.      size_t length;
  50. {
  51.   CONST unsigned char *src = (CONST unsigned char *)src_void;
  52.   
  53.   while (--length >= 0)
  54.   {
  55.     if (*src == c)
  56.      return (PTR)src;
  57.     src++;
  58.   }
  59.   return NULL;
  60. }
  61.